#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
////实现一个宏，求平方
//#define SQUARE(n) n*n
//int main()
//{
//	int x = 0;
//	scanf("%d", &x);
//	//int ret = SQUARE(x);
//	//int ret = SQUARE(5 + 1); //不计算5+1的值，直接将n替换成5+1，变成5+1*5+1
//	int ret = SQUARE((5 + 1));
//	printf("%d\n", ret);
//
//	return 0;
//}

//#include<stdio.h>
////实现一个宏，求平方
//#define SQUARE(n) (n)*(n)
//int main()
//{
//	int x = 0;
//	scanf("%d", &x);
//	int ret = SQUARE(5 + 1);
//	printf("%d\n", ret);
//
//	return 0;
//}

//#include<stdio.h>
////实现一个宏，求一个数的2倍
//#define DOUBLE(n) ((n)+(n))
//int main()
//{
//	int x = 0;
//	scanf("%d", &x);
//	int ret = DOUBLE(5 + 1);
//	printf("%d\n", ret);
//
//	return 0;
//}

//#include<stdio.h>
//#define INT_PTR int*
//typedef int* int_ptr;
//int main()
//{
//	INT_PTR a, b;
//	int_ptr c, d;
//	return 0;
//}

//#include<stdio.h>
////写一个宏，求两个数的较大值
//#define MAX(x,y) ((x)>(y)?(x):(y))
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int m = MAX(a, b);
//	printf("%d\n", m);
//
//	return 0;
//}

//#include<stdio.h>
//#include<stdlib.h>
//#define MALLOC(n,type) (type*)malloc(n*sizeof(type))
//int main()
//{
//	int* p = MALLOC(10, int);
//	//int* p = (int*)malloc(10*sizeof(int))
//
//	return 0;
//}

//#include<stdio.h>
////参数的字符串化
//#define PRINT(format,n) printf("the value of " #n " is " format "\n",n)
//int main()
//{
//	//printf("hello ""world\n");
//	int a = 10;
//	PRINT("%d", a);
//
//	int b = 20;
//	PRINT("%d", b);
//
//	float f = 5.5f;
//	PRINT("%f", f);
//
//	return 0;
//}

//#include<stdio.h>
////生成函数的模板
//#define GENERIC_MAX(type) \
//type type##_max(type x,type y)\
//{\
//    return x>y?x:y;\
//}
//// 使用上面的模板定义函数
//// int_max
//GENERIC_MAX(int)
//// float_max
//GENERIC_MAX(float)
//int main()
//{
//	printf("%d\n", int_max(3, 4));
//	printf("%f\n", float_max(3.0, 5.0));
//	return 0;
//}

//#include<stdio.h>
//#define M 2
//int main()
//{
//#if M==2
//	printf("hehe\n");
//#endif
//	return 0;
//}

//#include<stdio.h>
//#define M 1
//int main()
//{
//#if M==1
//	printf("hehe\n");
//#elif M==3
//	printf("haha\n");
//#elif M==4
//	printf("heihei\n");
//#else
//	printf("呵呵\n");
//#endif
//	return 0;
//}

//#include<stdio.h>
////#define ZHANGSAN 1
//int main()
//{
//#if defined(ZHANGSAN)
//	printf("zhangsan\n");
//#endif
//	return 0;
//}

//#include<stdio.h>
//#define ZHANGSAN 1
//int main()
//{
//#ifdef ZHANGSAN
//	printf("zhangsan\n");
//#endif
//	return 0;
//}

//#include<stdio.h>
////#define ZHANGSAN 1
//int main()
//{
//#if !defined(ZHANGSAN)
//	printf("zhangsan\n");
//#endif
//	return 0;
//}

//#include<stdio.h>
//#define ZHANGSAN 1
//int main()
//{
//#ifndef ZHANGSAN
//	printf("zhangsan\n");
//#endif
//	return 0;
//}